# 简历美化建议 使用Spark4.0 Ultra
import json
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler
from sparkai.core.messages import ChatMessage

SPARKAI_URL = 'wss://spark-api.xf-yun.com/v4.0/chat'
SPARKAI_APP_ID = 'e2298af6'
SPARKAI_API_SECRET = 'ZTE2Y2I4ZDVlY2E5ZjIyMzFjODcxMGRm'
SPARKAI_API_KEY = 'b3eb95452a696cdc99b4f394b60a5e17'
SPARKAI_DOMAIN = '4.0Ultra'

def resumeAnalyze(resume):
    spark = ChatSparkLLM(
        spark_api_url=SPARKAI_URL,
        spark_app_id=SPARKAI_APP_ID,
        spark_api_key=SPARKAI_API_KEY,
        spark_api_secret=SPARKAI_API_SECRET,
        spark_llm_domain=SPARKAI_DOMAIN,
        streaming=False,
    )
    prompt = f"""你是一位资深的HR专家 + 简历写作顾问 + 技术岗位招聘官，请根据以下内容：
            1.分析求职者简历是否符合计算机行业技术岗的标准要求；
            2.指出简历中内容的优势与不足（如项目经历不具体、技术技能不明确、缺乏成果量化等）；
            3.用专业、简洁的语言美化整份简历内容，重点包括：
            (1)明确职业定位（技术方向）；
            (2)突出技能匹配（如框架/语言/算法/数据库等）；
            (3)精炼工作/项目经验（使用动词、技术成果、数据驱动）；
            (4)优化自我评价，使其更符合技术岗位候选人画像。
            输出要求：请写出简要评价（150字左右），指出该简历的优势、不足，以及改进建议。
             JSON格式要求（严格JSON）：
            {{
                "advantage": "简历优势",
                "disadvantage":"简历不足",
                "advice":"改进建议"
            }}，求职者的简历如下：{resume} """

    messages = [ChatMessage(
        role="user",
        content=prompt
    )]
    handler = ChunkPrintHandler()
    result_text = spark.generate([messages], callbacks=[handler]).generations[0][0].text
    clean_text = result_text.replace("```json", "").replace("```", "").strip()
    json_data = json.loads(clean_text)

    # 你现在可以访问：
    advantage = json_data["advantage"]
    disadvantage = json_data["disadvantage"]
    advice = json_data["advice"]
    return advantage, disadvantage, advice

if __name__ == '__main__':
    advantage, disadvantage, advice = resumeAnalyze()
    print(advantage)
    print(disadvantage)
    print(advice)